﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Drawing;
using System.Data;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.IO;

namespace Export2IMG
{
    public partial class CMNDTruoc : UserControl
    {        
        private string soCMND;
        private string hoTen;
        private string namSinh;
        private string nguyenQuan;
        private string noiDKHK;
        private string noiDKHK_TS;
        private string ngayCap;
        private string thangCap;
        private string namCap;
        private string noiCap;
        private string imageURL = 
            Path.GetDirectoryName(Path.GetDirectoryName(System.IO.Directory.GetCurrentDirectory())) 
            + "/images/ava.jpg";
    
        public CMNDTruoc()
        {
            InitializeComponent();
        }

        public void InitialCMNDTruoc(string soCMND)
        {

        }

        private void CMNDTruoc_Load(object sender, EventArgs e)
        {
            lblSoCMND.Text = SoCMND;
            lblHoTen.Text = HoTen;
            lblNgaySinh.Text = NamSinh;
            lblNguyenQuan.Text = NguyenQuan;
            lblDKHK.Text = NoiDKHK;
            lblDKHK_TS.Text = NoiDKHK_TS;
            lblNgayCap.Text = NgayCap;
            lblThangCap.Text = ThangCap;
            lblNamCap.Text = NamCap;
            lblNoiCap.Text = NoiCap;
            //load image
            Image image = Image.FromFile(ImageURL);
            pbAnh.Image = image;
            pbAnh.Invalidate();

            //GenerateHoTen();
            //GenerateSoCMND();
            //GenerateNgaySinh();
            //GenerateNoiDKHK();
            setUI();

        }
        
        //========================================
        // Các events.
        //========================================

        private void pbAnh_Click(object sender, EventArgs e)
        {
            string fileName = "";
            if (openFileDialog1.ShowDialog() == DialogResult.OK)
            {
                fileName = openFileDialog1.FileName;
                Image image = Image.FromFile(fileName);
                pbAnh.Image = image;
                pbAnh.Invalidate();

            }
        }
        
        //========================================
        // Các method.
        //========================================


        /// <summary>
        /// Set font, màu sắc, kích thước cho các label
        /// </summary>
        public void setUI()
        {

            // Màu cho 9 chữ số CMND
            lblSoCMND.ForeColor = Color.FromArgb(192, 4, 79);
            lblSoCMND.Font = new Font("JasmineUPC", 30);

            // Màu chữ cho các thông tin
            // Họ tên
            lblHoTen.ForeColor = Color.FromArgb(77, 83, 83);
            lblHoTen.Font = new Font("Times New Roman", 18);
            // Ngày sinh
            lblNgaySinh.ForeColor = Color.FromArgb(77, 83, 83);
            lblNgaySinh.Font = new Font("Times New Roman", 18);
            // Nguyên quán
            lblNguyenQuan.ForeColor = Color.FromArgb(77, 83, 83);
            lblNguyenQuan.Font = new Font("Times New Roman", 18);
            // Nơi DKHK
            lblDKHK.ForeColor = Color.FromArgb(77, 83, 83);
            lblDKHK.Font = new Font("Times New Roman", 18);

            // Huyện DKHK
            lblDKHK_TS.ForeColor = Color.FromArgb(77, 83, 83);
            lblDKHK_TS.Font = new Font("Times New Roman", 18);

            // Mat Sau
            // Ngày cấp
            lblNgayCap.ForeColor = Color.FromArgb(54, 57, 63);
            lblNgayCap.Font = new Font("Times New Roman", 15);

            // Tháng cấp
            lblThangCap.ForeColor = Color.FromArgb(54, 57, 63);
            lblThangCap.Font = new Font("Times New Roman", 15);

            // Năm cấp
            lblNamCap.ForeColor = Color.FromArgb(54, 57, 63);
            lblNamCap.Font = new Font("Times New Roman", 15);

            // Nơi cấp
            lblNoiCap.ForeColor = Color.FromArgb(54, 57, 63);
            lblNoiCap.Font = new Font("Times New Roman", 15); 

        }

        /// <summary>
        /// Tự sinh 5 số còn lại của CMND
        /// </summary>
        private void GenerateSoCMND()
        {
            Random rd = new Random();

            double i = rd.NextDouble() * 100000;
            lblSoCMND.Text = "" + Math.Round(i, 0);
        }

        /// <summary>
        /// Tự sinh họ và tên
        /// </summary>
        private void GenerateHoTen()
        {
            Random rd = new Random();
            double h = rd.NextDouble() * 9;
            double d = rd.NextDouble() * 4;
            double t = rd.NextDouble() * 29;


            int hi = Int32.Parse("" + Math.Round(h, 0));
            int hd = Int32.Parse("" + Math.Round(d, 0));
            int ht = Int32.Parse("" + Math.Round(t, 0));

        }

        /// <summary>
        /// Tự sinh ngày tháng sinh
        /// </summary>
        private void GenerateNgaySinh()
        {

            Random rd = new Random();
            double d = rd.NextDouble() * 10;
            double m = rd.NextDouble() * 10;

            string dob = Math.Round(d, 0) + " / " + Math.Round(m, 0);
            lblNgaySinh.Text = dob;
        }

        /// <summary>
        /// Tự sinh nơi DKHK
        /// </summary>
        private void GenerateNoiDKHK()
        {
            Random rd = new Random();
            double to = (rd.NextDouble() * 100) - 20;

            lblDKHK.Text = "" + Math.Round(to, 0);
        }
        
        //========================================
        // Getter Setter
        //========================================

        public string SoCMND
        {
            get { return soCMND; }
            set { soCMND = value; }
        }

        public string HoTen
        {
            get { return hoTen; }
            set { hoTen = value; }
        }

        public string NamSinh
        {
            get { return namSinh; }
            set { namSinh = value; }
        }
        
        public string NguyenQuan
        {
            get { return nguyenQuan; }
            set { nguyenQuan = value; }
        }

        public string NoiDKHK
        {
            get { return noiDKHK; }
            set { noiDKHK = value; }
        }

        public string NgayCap
        {
            get { return ngayCap; }
            set { ngayCap = value; }
        }

        public string NoiCap
        {
            get { return noiCap; }
            set { noiCap = value; }
        }

        public string NoiDKHK_TS
        {
            get { return noiDKHK_TS; }
            set { noiDKHK_TS = value; }
        }

        public string ThangCap
        {
            get { return thangCap; }
            set { thangCap = value; }
        }

        public string NamCap
        {
            get { return namCap; }
            set { namCap = value; }
        }

        public string ImageURL
        {
            get { return imageURL; }
            set { imageURL = value; }
        }

    }
}
